Amazon Lexの分析の各機能の解説と活用方法を紹介
はじめに
Amazon Lexは、音声やテキストを用いてアプリケーションの会話型インターフェースを構築するためのAWSサービスです。
ボットの性能を継続的に向上させるためには、その動作を詳細に分析し、改善点を特定する必要があります。
本記事では、Amazon Lexの分析機能について詳しく解説し、その活用方法を紹介します。
Lexの分析機能は、ボットのパフォーマンスを評価し、改善するための機能です。主に以下の3つのダッシュボードで構成されています。
- 会話ダッシュボード
- パフォーマンスダッシュボード
- 概要(Overview)
これらのダッシュボードを活用することで、以下のような分析が可能になります
- ボットと顧客とのやり取りの成功率と失敗率の測定
- 会話の流れのパターンの視覚化
- インテント、スロット、発話、会話に関する問題の特定
これらの指標は直感的なグラフやチャートで視覚化されており、効率的な分析が可能です。さらに、フィルタリング機能も備わっているため、特定の期間や問題に焦点を当てた詳細な分析を行うことができます。
これらの分析機能を効果的に活用することで、ボットの性能改善とユーザー体験の向上が可能となります。
注意点として、分析結果を確認できる期間は最大30日間です。30日以上前のデータを指定すると、以下のエラーメッセージが表示されます。
The StartTime can't be more than 1 month before the current time. Fix the value and retry your request.
事前に、Lexの分析機能で使用される主要な用語をご確認いただくと、より理解が深まります。
以下、各ダッシュボードの詳細と、それらを効果的に使用する方法について解説していきます。
- 会話ダッシュボード
- パフォーマンスダッシュボード
- 概要(Overview)
分析で必要なIAMポリシー
ユーザーがAWSマネジメントコンソールからLexの分析画面にアクセスするには、AmazonLexFullAccess
ポリシー、または分析API権限を含むカスタムポリシーが必要です。
AmazonLexReadOnly
では権限不足ですので、ご注意ください。
以下のドキュメントにカスタムポリシーの例が記載されていますので、ご参照ください。
会話ダッシュボード
会話ダッシュボードは以下の3つで構成されています
- 会話ダッシュボードの概要
- 会話フロー
- 会話
1. 会話ダッシュボードの概要
会話ダッシュボードの概要では、ボットの対話性能を評価するための4つの重要な指標を確認できます。
- 概要(Summary)
- 会話数(Conversation count)
- メッセージ数(Message count)
- 会話時間(Time of conversations)
概要(Summary)
概要には、ボットとのユーザー会話に関する以下の情報が表示されます。
- Total conversations :ボットとの会話の合計数
- Average conversation duration (mm:ss):ユーザーとボットとの会話の平均時間 (分と秒)
- Average turns per conversation :会話あたりの平均ターン数(ユーザーとボットのメッセージで1ターンと計算)
会話数(Conversation count)とメッセージ数(Message count)
会話数とメッセージ数は、以下の通り1時間ごとにカウントが表示されます。
会話時間(Time of conversations)
会話時間(Time of conversations)では、フィルターで指定した時間範囲内で、各曜日の2時間ごとにボットと顧客との間で行われた会話の数が表示されます。
濃い色のセルは、より多くの会話が行われた時間帯を示しており、ユーザーの利用パターンを視覚的に把握することができます。
2. 会話フロー
会話フローでは、ボットとの会話で誘発されるインテントの順序が視覚化されています。
会話で最も利用頻度頻度の高い5つのインテントが、頻度の降順に表示されます。
また、各インテントの配下には、別のインテントを呼び起こした割合と数が表示されます。
インテントを選択し、画面下のウィンドウを展開すると、選択したインテントの順序に従った会話のリストを表示できます
3. 会話
会話では、ボットとの個別の会話リストが表示されます。各会話について、以下の項目が一覧で確認できます。
- セッションID(Session ID)
- タイムスタンプ(Timestamp)
- 会話の日付と開始時間です。
- 会話時間(Duration)
- 会話の継続時間を mm:ss 形式で表示します。セッションタイムアウト時間 (idleSessionTTLInSeconds) は含まれません。
- 結果(Result)
- 会話が成功、失敗、除外(Dropped)のいずれに分類されたかを指定します。
- ターン数(Turns)
- ユーザーとボットとのメッセージで1ターンと計算
「会話」や、会話の結果である「成功、失敗、除外」の定義は、先程紹介しました記事をご参照ください。
会話結果は、成功、失敗、除外(Dropped)などの条件でフィルタリングが可能です。これにより、特定の結果に焦点を当てた分析を行うことができます。
セッションIDをクリックすると、詳細が確認できます。
詳細の文字起こし(Transcript)では、会話内容や、インテントやスロットを誘発する際のボットとユーザーのやりとりを確認できます。
会話の各ターンでは以下の3つの情報が表示されます。
- タイムスタンプ
- 発話時間
- スロット状態
- 該当する場合、発話中にボットが誘発しているスロット名と、ユーザーが提供したスロット値を表示します
- 該当する場合、発話中にボットが誘発しているスロット名と、ユーザーが提供したスロット値を表示します
- インテント状態
- 該当する場合、発話中にボットが誘発しているインテントと、インテントの結果を表示します。インテント状態には以下のものがあります。
Invoked intent: インテント名
:ボットは発話に基づいてインテントを誘発しました。
Switched intent: インテント名
:ボットは発話に基づいて別のインテントに切り替わりました。
インテント名: Success
:ボットはインテントを実行しました。
- 該当する場合、発話中にボットが誘発しているインテントと、インテントの結果を表示します。インテント状態には以下のものがあります。
会話分析では、失敗や除外された会話、また異常に長い会話時間を持つ会話を特定することができます。
これらの情報を詳細に分析することで、ボットの応答や会話フローにおける問題点を特定し、具体的な改善策を立案することが可能となります。
パフォーマンスダッシュボード
パフォーマンスダッシュボードでは、ボットのインテント処理と発話認識の詳細なパフォーマンス指標を確認できます。このダッシュボードは主に以下の3つで構成されています。
- パフォーマンスダッシュボード
- インテントパフォーマンス
- 発話認識
1. パフォーマンスダッシュボード
パフォーマンスダッシュボードでは、以下の2つが確認できます。
- インテントパフォーマンスの内訳(Intent performance breakdown)
- 内訳は、インテントの成功、失敗、切り替え(Switched)、除外(Dropped)でそれぞれ分類された回数と割合が表示されます。
- 発話認識(Utterance recognition)
- 発話認識では、見逃された発話と検出された発話の数がまとめられています。
発話認識のうち、未検出発話(Missed utterances)と検出された発話(Detected utterances)それぞれクリックすると、発話認識の画面に遷移します。発話認識で確認できる内容は、後述します。
2. インテントパフォーマンス
ボットで使用されたインテントのパフォーマンスが、使用頻度の低い順にまとめられています。
各インテントの横にあるバーには、インテントが成功、失敗、除外(Dropped)、切り替え(Switched)に分類された回数が視覚的に表示されます。
インテント名をクリックすると、対象のインテントの以下の3つが確認できますので、解説します。インテントパフォーマンスの内訳の解説は先ほどしましたので、省略します。
- インテントパフォーマンスの内訳(Intent performance breakdown)
- スロットパフォーマンス(Slot performance)
- インテントスイッチ(Intent switches)
スロットパフォーマンス(Slot performance)
スロットパフォーマンスでは、以下が確認できます。
- スロット誘発回数(Times elicited)
- スロットが呼び出された回数です。成功・失敗・除外の3つ合計数です。
- 成功回数
- 失敗回数
- 除外回数(Dropped)
- スロット成功率(Slot success rate)
- 成功回数 / スロット誘発回数
- 平均再試行率(Average retries)
- ユーザーの適切でないスロットの入力により、スロットの入力を再度求める回数
インテントスイッチ(Intent switches)
インテントスイッチでは、ボットが現在のインテントから別のインテントに切り替えたインテントが、以下の情報とともに一覧表示されます。
- ステージ(Stage)
- ボットがインテントを切り替えた会話のステージ。ステージは、インテント
- インテントの切り替え先(Intent switched to)
- ボットが現在のインテントを切り替えたインテント。
- セッション数(Session count)
- ステージとインテントの切り替え先の組み合わせが発生したセッションの数。
注意:スロット名やステージ名をクリックしても、実際のインテントのスロットではなく、Lexボットの「すべての言語」セクションに遷移します。そのため、これらの項目をクリックする必要はありません。
↓クリックすると「すべての言語」セクションに遷移
3. 発話認識
発話認識の分析ページでは、ユーザーの発話に対するボットの理解度を評価できます。
ここでは、インテントを正しく検出できた発話と、検出できなかった発話がすべて一覧表示されます。
ボットのトレーニングに役立つサンプル発話をインテントに追加するため仕組みも用意されています。
検出できた発話(Detected utterances)は以下の表示となります。
発話内容、回数、誘発したインテント(Mapped intent)、発話した日時が確認できます。
誘発したインテントをクリックすると、Lexボットの「すべての言語」に遷移しますので、クリックする必要性はありません。
検出できなかった発話(Missed utterances)は以下の表示となります。
発話内容、回数、発話した日時が確認できます。
サンプル発話をインテントに追加
サンプル発話をインテントに追加する機能もご紹介します。
検出できなかった発話から、サンプル発話に加えたい発話を選択し[Add to intent]をクリックします。
サンプル発話に加えたいインテントを選択し[追加]します。
サンプル発話に追加すると、Lexボットを再ビルドすることなく、利用できます。
概要(Overview)
概要(Overview)ページでは、会話の結果、発話認識の精度、インテントの利用状況など、ボット全体のパフォーマンスが一目で把握できるようにまとめられています。
概要では以下の5つが確認できます。
- 会話パフォーマンス(Conversation performance)
- 会話の成功、失敗、除外に分類された会話の数と割合を確認できます。ドロップダウンメニューから、特定の結果 (成功、失敗、または除外) を選択すると、[会話ダッシュボード] の [会話] サブセクションに遷移できます。
↓
- 会話の成功、失敗、除外に分類された会話の数と割合を確認できます。ドロップダウンメニューから、特定の結果 (成功、失敗、または除外) を選択すると、[会話ダッシュボード] の [会話] サブセクションに遷移できます。
- 発話認識率(Utterance recognition rate)
- 検出された発話と、見逃された発話の数と割合を確認できます。ドロップダウンメニューから、特定の結果 ([見逃した発話]、または [見逃された発話] )を選択すると、[パフォーマンスダッシュボード] の [発話認識] に遷移します。
↓
- 検出された発話と、見逃された発話の数と割合を確認できます。ドロップダウンメニューから、特定の結果 ([見逃した発話]、または [見逃された発話] )を選択すると、[パフォーマンスダッシュボード] の [発話認識] に遷移します。
- 会話パフォーマンス履歴(Conversation performance history)
- フィルターで設定した時間範囲で、成功、失敗、および除外に分類された会話の割合を確認できます。
- フィルターで設定した時間範囲で、成功、失敗、および除外に分類された会話の割合を確認できます。
- 使用されたインテントの上位 5 位(Top 5 used intents)
- [View all intents]をクリックすると、[パフォーマンスダッシュボード] の [インテントのパフォーマンス] に遷移し、各結果(成功、失敗、除外、切り替え)のインテントが確認できます。
↓
- [View all intents]をクリックすると、[パフォーマンスダッシュボード] の [インテントのパフォーマンス] に遷移し、各結果(成功、失敗、除外、切り替え)のインテントが確認できます。
- 失敗したインテントの上位 5 位(Top 5 failed intents)
- [View failed intents]をクリックすると、[パフォーマンスダッシュボード] の [インテントのパフォーマンス] に遷移し、失敗したインテントのみが確認できます。
↓
- [View failed intents]をクリックすると、[パフォーマンスダッシュボード] の [インテントのパフォーマンス] に遷移し、失敗したインテントのみが確認できます。
最後に
Amazon Lexの分析機能は、ボットの性能を継続的に向上させるための重要な機能です。本記事で紹介した各機能の主な利用用途は以下の通りです
-
会話ダッシュボード
- 会話の成功率や失敗率の把握
- 会話フローの可視化と最適化
- 問題のある会話の特定と分析
-
パフォーマンスダッシュボード
- インテントやスロットの誘発成功率や失敗率の確認
- スロットの再試行率の把握
- 未検出の発話パターンの発見と対応
-
概要(Overview)
- ボット全体のパフォーマンスの把握
- 最も使用されているインテントや失敗しているインテントの特定
- 時系列でのパフォーマンス変化の確認
これらの分析機能を効果的に活用することで、以下のような具体的な改善が可能になります。
- ユーザーとの会話の成功率向上
- 問題のあるインテントやスロットの特定と改善
- 未検出の発話パターンの発見し、サンプル発話に追加することで、インテント誘発率の向上
- ボットの全体的なパフォーマンスの把握と最適化
これらの分析結果を定期的に確認し、ボットの設定に反映させることで、より自然で効果的な会話を実現するボットへと継続的に改善していくことができます。
Lexの分析機能を積極的に活用し、データに基づいた改善を行うことで、ユーザー体験の継続的な向上につなげていくことを強くお勧めします。
参考